package com.cn.wxwinnie.arithmetic;

import com.cn.wxwinnie.utils.PrintLine;

/**
 * @author 潇湘暮雨 E-mail:wxwinnie@hotmail.com
 * 
 * @version 创建时间：2014年3月10日 下午8:59:49
 * 
 */
public class BubbleSort {
	public static void main(String[] args) {
		int[] aa = { 69, 45, 12, 5, 2, 65,34,7 };
		PrintLine.pringLine("排序前");
		System.out.println(aa);// 数组是不能直接打印的
		for (int i = 0; i < aa.length; i++) {
			System.out.print(aa[i] + " ");
		}
		
		aa = bubbleSortInt(aa);
		PrintLine.pringLine();
		PrintLine.pringLine("冒泡排序后");
		for (int i = 0; i < aa.length; i++) {
			System.out.print(aa[i] + " ");
		}
	}

	
	/**
	 * 冒泡排序
	 * @author 潇湘暮雨 E-mail:wxwinnie@hotmail.com
	 *
	 * @version 创建时间：2014年3月10日 下午10:48:37
	 *
	 * @param aa
	 * @return
	 */
	public static int[] bubbleSortInt(int[] aa) {
		PrintLine.pringLine();
		PrintLine.pringLine("进入排序");
		for (int i = 0; i < aa.length - 1; i++) { // 最多做n-1趟排序
			for (int j = 0; j < aa.length - i - 1; j++) {
				if (aa[j] > aa[j + 1]) {
					int temp = aa[j];
					aa[j] = aa[j + 1];
					aa[j + 1] = temp;
				}
				for (int k = 0; k < aa.length; k++) {
					System.out.print(aa[k] + " ");
				}
				System.out.println();
			}
		}
		return aa;
	}
//从输出的结果可以看出，每次比较相邻的两个（按照从小到大排序，那么每次都会将相邻的两个书中较大的一个放在后面，每次都比较相邻的）
//比如第一次比较 69和45，将69放在后面，然后比较69和12，又将69放在后面，每次全遍历的话，都会将一个元素放在最后面。而且每次都是最后面的元素有序。
}
